package com.ltf.entity;

import java.util.Date;

/**
 * Book类表示一本书的实体对象，包含书籍的各种属性和操作方法。
 * 该类提供了对书籍信息的封装，包括ID、名称、价格、作者等字段，
 * 并提供了getter和setter方法用于访问和修改这些字段。
 */
public class Book {
    private int id; // 书籍的唯一标识符
    private String name; // 书籍名称
    private String sn; // 书籍的序列号
    private double price; // 书籍的价格
    private double price2; // 书籍的备用价格
    private String maker; // 书籍的制造商或出版社
    private Date tmake; // 书籍的生产日期
    private int typeid; // 书籍的类型ID
    private String pic; // 书籍的封面图片路径
    private String author; // 书籍的作者
    private int salenum; // 书籍的销售数量
    private int stock; // 书籍的库存数量
    private String info; // 书籍的详细信息
    private String info2; // 书籍的备用信息

    /**
     * 无参构造函数，用于创建一个Book对象。
     * 在对象创建时会打印一条日志信息。
     */
    public Book() {
        System.out.println("Book...无参构造...");
    }

    /**
     * 获取书籍的唯一标识符。
     *
     * @return 返回书籍的ID。
     */
    public int getId() {
        return id;
    }

    /**
     * 设置书籍的唯一标识符。
     *
     * @param id 要设置的书籍ID。
     */
    public void setId(int id) {
        this.id = id;
    }

    /**
     * 获取书籍的名称。
     *
     * @return 返回书籍的名称。
     */
    public String getName() {
        return name;
    }

    /**
     * 设置书籍的名称。
     *
     * @param name 要设置的书籍名称。
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取书籍的序列号。
     *
     * @return 返回书籍的序列号。
     */
    public String getSn() {
        return sn;
    }

    /**
     * 设置书籍的序列号。
     *
     * @param sn 要设置的书籍序列号。
     */
    public void setSn(String sn) {
        this.sn = sn;
    }

    /**
     * 获取书籍的价格。
     *
     * @return 返回书籍的价格。
     */
    public double getPrice() {
        return price;
    }

    /**
     * 设置书籍的价格。
     *
     * @param price 要设置的书籍价格。
     */
    public void setPrice(double price) {
        this.price = price;
    }

    /**
     * 获取书籍的备用价格。
     *
     * @return 返回书籍的备用价格。
     */
    public double getPrice2() {
        return price2;
    }

    /**
     * 设置书籍的备用价格。
     *
     * @param price2 要设置的书籍备用价格。
     */
    public void setPrice2(double price2) {
        this.price2 = price2;
    }

    /**
     * 获取书籍的制造商或出版社。
     *
     * @return 返回书籍的制造商或出版社。
     */
    public String getMaker() {
        return maker;
    }

    /**
     * 设置书籍的制造商或出版社。
     *
     * @param maker 要设置的书籍制造商或出版社。
     */
    public void setMaker(String maker) {
        this.maker = maker;
    }

    /**
     * 获取书籍的生产日期。
     *
     * @return 返回书籍的生产日期。
     */
    public Date getTmake() {
        return tmake;
    }

    /**
     * 设置书籍的生产日期。
     *
     * @param tmake 要设置的书籍生产日期。
     */
    public void setTmake(Date tmake) {
        this.tmake = tmake;
    }

    /**
     * 获取书籍的类型ID。
     *
     * @return 返回书籍的类型ID。
     */
    public int getTypeid() {
        return typeid;
    }

    /**
     * 设置书籍的类型ID。
     *
     * @param typeid 要设置的书籍类型ID。
     */
    public void setTypeid(int typeid) {
        this.typeid = typeid;
    }

    /**
     * 获取书籍的封面图片路径。
     *
     * @return 返回书籍的封面图片路径。
     */
    public String getPic() {
        return pic;
    }

    /**
     * 设置书籍的封面图片路径。
     *
     * @param pic 要设置的书籍封面图片路径。
     */
    public void setPic(String pic) {
        this.pic = pic;
    }

    /**
     * 获取书籍的作者。
     *
     * @return 返回书籍的作者。
     */
    public String getAuthor() {
        return author;
    }

    /**
     * 设置书籍的作者。
     *
     * @param author 要设置的书籍作者。
     */
    public void setAuthor(String author) {
        this.author = author;
    }

    /**
     * 获取书籍的销售数量。
     *
     * @return 返回书籍的销售数量。
     */
    public int getSalenum() {
        return salenum;
    }

    /**
     * 设置书籍的销售数量。
     *
     * @param salenum 要设置的书籍销售数量。
     */
    public void setSalenum(int salenum) {
        this.salenum = salenum;
    }

    /**
     * 获取书籍的库存数量。
     *
     * @return 返回书籍的库存数量。
     */
    public int getStock() {
        return stock;
    }

    /**
     * 设置书籍的库存数量。
     *
     * @param stock 要设置的书籍库存数量。
     */
    public void setStock(int stock) {
        this.stock = stock;
    }

    /**
     * 获取书籍的详细信息。
     *
     * @return 返回书籍的详细信息。
     */
    public String getInfo() {
        return info;
    }

    /**
     * 设置书籍的详细信息。
     *
     * @param info 要设置的书籍详细信息。
     */
    public void setInfo(String info) {
        this.info = info;
    }

    /**
     * 获取书籍的备用信息。
     *
     * @return 返回书籍的备用信息。
     */
    public String getInfo2() {
        return info2;
    }

    /**
     * 设置书籍的备用信息。
     *
     * @param info2 要设置的书籍备用信息。
     */
    public void setInfo2(String info2) {
        this.info2 = info2;
    }

    /**
     * 重写toString方法，返回书籍对象的字符串表示形式。
     * 字符串包含书籍的所有字段及其值。
     *
     * @return 返回书籍对象的字符串表示形式。
     */
    @Override
    public String toString() {
        return "Book{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", sn='" + sn + '\'' +
                ", price=" + price +
                ", price2=" + price2 +
                ", maker='" + maker + '\'' +
                ", tmake=" + tmake +
                ", typeid=" + typeid +
                ", pic='" + pic + '\'' +
                ", author='" + author + '\'' +
                ", salenum=" + salenum +
                ", stock=" + stock +
                ", info='" + info + '\'' +
                ", info2='" + info2 + '\'' +
                '}';
    }
}
